1. The Field of the Invention
The present invention relates to methods and systems for generating unique and meaningful Uniform Resource Locators (URLs) on a computer network. More specifically, the present invention relates to methods and systems for determining if an generated URL is identical to a previously generated URL and, if so, modifying the generated URL to be unique yet still meaningful to a reader.
2. The Prior State of the Art
The popularity of the Internet has profoundly improved the way people communicate by allowing users quick and easy access to information. By accessing the World Wide Web and electronic mail through computers and other devices, people now stay in touch with each other around the globe, and can access information on a wide variety of subjects.
The World Wide Web, in particular, allows efficient access to a virtually limitless store of information. The efficiency of accessing information on the World Wide Web is due in part to the use of an address scheme employing Uniform Resource Locators. Uniform Resource Locators, or URLs, are used to address all information on the World Wide Web. Each object on the World Wide Web is assigned a URL, which can be used to access the object. Typically, users transmit the URL to the server that contains the corresponding object, and then the server returns the corresponding object.
Due to the magnitude of the information already addressable using URLs and the efficiency with which the information can be retrieved using this addressing method, many applications are implemented to access objects using corresponding URLs to identify the object. Additionally, many applications generate URLs for associated objects so the objects may be accessed using a URL. However, there are still a large number of preexisting objects that are not assigned a URL since the objects were created by applications that do not have the functionality to assign URLs to objects.
As a result, applications were developed to assign URLs to objects where the applications that were used to create the object (i.e., the generation program) did not have the capability to make such a URL assignment. The generation programs would typically generate a unique identifier for an object and use this as part of the URL. These generation programs could create unique URLs that would function properly on the World Wide Web. However, one shortcoming of these URL generation techniques is that URLs are not generated in a format that is meaningful to a human reader. If a URL is not created in a format that expresses meaning to a human user, the user would typically have to open the object to determine the relevance of the object, thus wasting user time.
It is important with the ever-increasing amount of information available on the World Wide Web that URLs generated for objects are unique yet meaningful to a reader. Accordingly, methods and systems are desired for efficiently generating and assigning unique and meaningful URLs for objects.
The present invention relates to an efficient and automated method for creating unique and meaningful URLs to identify objects. When an object has been created and a URL must be generated for the object, one or more object properties that are characteristically descriptive of the object (or descriptive portions thereof) are included in the generated URL. Including the descriptive property of an object in the URL allows the URL to be meaningful and human readable so that a human may derive the characteristics of an object from the URL itself rather than having to open the object. A hashing index may be used to more efficiently search for existing URLs in order to detect and prevent the creation of non-unique URL names. The present invention is also capable of generating unique URLs for previously existing objects. This generation may be performed, for example, when replicating the previously existing objects, or perhaps when upgrading the system that manages the objects.
At the time an object is created, it is often beneficial to generate a unique and meaningful URL for the object. In accordance with embodiments of the invention, a hashing function may be used to efficiently perform a search to determine whether a tentative URL already exists. Also, the human-readable properties of the object are used to insure that the generated URL is meaningful to a reader. In absence of these acts, a non-unique or non-meaningful URL may be generated. This could create an ambiguous reference to the object or confuse a user as to the identity of the object.
In operation, when an object is created, a descriptive property of the object is accessed. For example, for an electronic mail message, the subject field of the electronic mail message is characteristically descriptive of the electronic mail message as a whole. Thus, when assigning a URL to an electronic mail message, the subject field may be accessed.
Then, it is determined whether or not including at least the descriptive portion of the property in a generated URL would result in a generated URL that is unique if incorporated using a first set of rules. For example, this might be efficiently accomplished by hashing the human-readable property using a hash function. The resulting hash value is compared to hash values associated with previously created objects included in a hash index. If the hash value is not found in the hash index, a human-readable URL is generated for the object, the URL including at least the descriptive portion of the human-readable property associated with the object. However, if the hash value is found in the hash index, the URL associated with the hash value is looked up. The URL from the lookup is compared to what the new URL would be it were actually generated (hereinafter called, xe2x80x9cthe tentative URLxe2x80x9d). By performing the search based on a hash value, instead of the entire original value, the search has become more efficient in terms of processing resources.
In the unlikely event that the looked up URL and the tentative URL are not identical, searching of the hash index is continued. However, if the two URLs are identical, then a second set of rules is used to incorporate the descriptive portion of the human-readable property into the URL. For example, a postfix, which is associated with the hash value, may be appended to the newly generated URL to make it unique. The appended postfix does not affect the readability or descriptiveness of the generated URL. When a postfix associated with a hash value is used to make a URL unique, the postfix is then modified in a way that makes it distinguishable from previously used postfixes associated with the hash value. Using distinguishing postfixes insures that when URLs are generated for future objects with an identical hash value, the URLs will be unique.
The method is also capable of generating unique and meaningful URLs for numerous objects simultaneously. It is often the case that when a system is upgraded or objects are replicated, that there are a large number of objects for which URLs must be generated. Creating hash values and searching a hash index for a large number of objects at once would create a strain on the processor resources of the associated computer and network systems. However, since objects are created using unique object identifiers, unique and meaningful URLs can still be generated. In the case of large numbers of objects, URLs are generated by appending the unique object identifier for each object to human-readable properties of each object.
Therefore, the principles of the present invention may be applied to created unique, human-readable URLs for objects that were not previously assigned URLs. This allows applications that recognize URLs to access and otherwise identify even those objects that may have been created by applications that lack the ability to assign URLs to newly created objects.
Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the invention. The features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.